<?php

class Privado extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->library('funciones');
        $this->load->model('mvisitas');
        $this->load->model('mparaderos');
        $this->load->model('mcontroles');
        $this->load->model('mmenus');
        $this->load->library('table');
        $this->load->library('ltablas');
        $this->load->model('mtransporte');
        $this->load->model('mpersonas');
        $this->load->model('msalidas');
    }

    function index() {
        $this->load->view('login'); //por construir
    }

    function salir() {

        $this->session->sess_destroy();
        echo "Adios!!!";
    }

    function inicio() {
        $datos['menu'] = $this->obtenerMenu();
        $this->load->view("principal", $datos);
    }

    function isPadre($id, $array) {
        $ispadre = false;
        foreach ($array as $fila) {
            if ($id == $fila['iidpadre']) {
                $ispadre = true;
                break;
            }
        }
        return $ispadre;
    }

    function obtenerMenu() {
        $idmusuario = $this->session->userdata('idmusuario');
        $arrayMenu = $this->mmenus->getArrayMenus($idmusuario);

        $arrayAux = $arrayMenu;
        $arrayPadres = array();
        $menuPrincipal = '';
        foreach ($arrayMenu as $key => $fila) {
            if ($fila['iidpadre'] == 1) {
                $id = $fila['idmmenus'];
                if ($this->isPadre($id, $arrayAux)) {
                    $tabMenu = "menu:'menu_$id'";
                    $arrayPadres[] = $id;
                } else {
                    $tabMenu = "menu:'empty'";
                }
                $nombre = $fila['vnombre'];
                $menuPrincipal.="<td class=\"rootVoice { $tabMenu } \" >$nombre</td>";
                unset($arrayAux[$key]);
            }
        }

        $menu = "<div id='wrapper' style='width:1000px;min-height:550px; border:1px dotted white; position:absolute;  top:100px'>

            <table width='100%'  border='0' cellpadding='0' cellspacing='0' bgcolor='#fff' ><!--style='position:absolute;bottom:0'-->
                <tr>
                    
                    <td valign='bottom'>
                        <table  border='0' cellpadding='0' cellspacing='0' class='container'>
                            <tr>
                                <td class='myMenu' align='left'>

                                    <!-- start horizontal menu -->

                                    <table class='rootVoices' cellspacing='0' cellpadding='0' border='0'>
                                        <tr>
                                            $menuPrincipal
                                        </tr>
                                    </table>

                                    <!-- end horizontal menu -->

                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>
        <div id='contenido'> 
		aqui mi contenido
        </div> 
        </div>";

        if (isset($arrayPadres[0])) {
            $fin = false;
        } else {
            $fin = true;
        }

        $i = 0;
        $submenu = '';
        $arrayAux2 = $arrayAux;

        while ($fin == false) {

            $padre = $arrayPadres[$i];
            $submenu.="<div id='menu_$padre' class='menu'>";
            foreach ($arrayAux as $key => $fila) {
                $id = $fila['idmmenus'];
                if ($padre == $fila['iidpadre']) {
                    if ($this->isPadre($id, $arrayAux2)) {
                        $tabMenu = "menu:'menu_$id',";
                        $arrayPadres[] = $id;
                    } else {
                        $tabMenu = "";
                    }
                    $nombre = $fila['vnombre'];
                    $accion = "action: " . "'" . $fila["vaccion"] . "',";
                    $submenu.="<a class=\"{ $accion $tabMenu img: 'icon_14.png'}\">$nombre</a>";
                    unset($arrayAux2[$key]);
                }
            }

            $submenu.="</div>";
            $arrayAux = $arrayAux2;
            $i++;
            if (!isset($arrayPadres[$i])) {
                $fin = true;
            }
        }
//        print_r($arrayPadres);
        $menu.=$submenu;
        return $menu;
    }

    function mantenimietoParaderos() {
        $opcionEmpresas = $this->mparaderos->getEmpresas();
        $opcionEmpresas = $this->funciones->convertirCombo($opcionEmpresas, 'idmempresa', 'empresa');
        $jsEmpresa = 'onChange="cargaLineas();" id="sEmpresa"';
        $datos['comboEmpresa'] = form_dropdown('empresa', $opcionEmpresas, 0, $jsEmpresa);

        $opcionLineas = $this->funciones->convertirCombo(array(), '', '');
        $jsLineas = 'onChange="cargaRutas();" id="sLinea"';
        $datos['comboLinea'] = form_dropdown('linea', $opcionLineas, 0, $jsLineas);

        $opcionRutas = $this->funciones->convertirCombo(array(), '', '');
        $jsRuta = 'onChange="cargaParaderos();" id="sRuta"';
        $datos['comboRuta'] = form_dropdown('empresa', $opcionRutas, 0, $jsRuta);



        $this->load->view("paraderos/vistaParaderos", $datos);
    }

    function cargaLineas() {
        $idEmpresa = $_POST['idEmpresa'];
        $opcionLineas = $this->mparaderos->getLineas($idEmpresa);
        echo "<option value='0' selected='selected'>seleccionar</option>";
        foreach ($opcionLineas as $fila) {
            $id = $fila['idmlinea'];
            $linea = $fila['vlinea'];
            echo "<option value='$id'>$linea</option>";
        }
    }

    function cargaRutas() {
        $idLinea = $_POST['idLinea'];
        $opcionRutas = $this->mparaderos->getRutas($idLinea);
        echo "<option value='0' selected='selected'>seleccionar</option>";
        foreach ($opcionRutas as $fila) {
            $id = $fila['idmruta'];
            $linea = $fila['vtipo_ruta'];
            echo "<option value='$id'>$linea</option>";
        }
    }

    function cargaParaderos() {
        $idRuta = $_POST['idRuta'];
        $arrayParaderos = $this->mparaderos->getParaderos($idRuta);
        $cabecera = array('iddparaderos', 'iorden', 'vnombre_paradero', 'ngps_latitud1', 'ngps_longitud1', 'vnombreTipo', 'ndistanciaParadero');
        $arrayTabla = $this->ltablas->ordenarColumnas($arrayParaderos, $cabecera);

        $opciones['eliminar'] = "eliminarParadero";
        $opciones['editar'] = "editarParadero";
        $tabla = $this->ltablas->botones($arrayTabla, $opciones, 'iddparaderos');

        $tmpl = array('table_open' => '<table  id="tablaParaderos" >');

        $this->table->set_template($tmpl);
        $this->table->set_heading('id', 'N°', 'Paradero', 'lat', 'lon', 'Tipo', 'dist. P. Ant', '', '');
        echo $this->table->generate($tabla);
        //print_r($arrayParaderos);
    }

    function nuevoParadero() {
        $idRuta = $_POST['idRuta'];
        $arrayDatosRuta = $this->mparaderos->getDatosRuta($idRuta);
        $datos['nombreEmpresa'] = $arrayDatosRuta[0]['nombre'];
        $datos['nombreLinea'] = $arrayDatosRuta[0]['vlinea'];
        $datos['tipoRuta'] = $arrayDatosRuta[0]['vtipo_ruta'];
        $datos['nombreParadero'] = '';
        $datos['nroOrden'] = $this->mparaderos->paraderoMaximo($idRuta) + 1;
        $datos['longitud'] = '';
        $datos['latitud'] = '';
        $datos['tipo'] = 'nuevo';
        $datos['idRuta'] = $idRuta;
        $datos['idParadero'] = '';
        //
        $opcionCombo = $this->mparaderos->getTipoParadero();
        $opcionCombo = $this->funciones->convertirCombo($opcionCombo, 'idmtipoparadero', 'vnombreTipo');
        $js = 'class="text ui-widget-content ui-corner-all" id="tipoCombo"';
        $datos['comboTipo'] = form_dropdown('tipoParadero', $opcionCombo, 1, $js);
        //
        $this->load->view("paraderos/mantenimientoParaderos", $datos);
    }

    function grabarParadero() {
        $tipo = $_POST['tipo'];
        $datos['ngps_latitud1'] = $_POST['latitud'];
        $datos['ngps_longitud1'] = $_POST['longitud'];
        $datos['vnombre_paradero'] = $_POST['nombreParadero'];
        $datos['iorden'] = $_POST['nroOrden'];
        $datos['idmruta'] = $_POST['idRuta'];
        $datos['idmtipoparadero'] = $_POST['tipoParadero'];
        if ($tipo == "nuevo") {
            $id = $this->mparaderos->nuevoParadero($datos);
        }
        if ($tipo == "editar") {
            $datos['idParadero'] = $_POST['idParadero'];
            $id = $this->mparaderos->editarParadero($datos);
        }
        $idParaderoAnterior = $this->mparaderos->paraderoAnterior($id);

        if ($idParaderoAnterior == 0) {
            $distancia = 0;
        } else {
            $punto = $this->mparaderos->getDatosParadero($idParaderoAnterior);
            $lat = $punto[0]['ngps_latitud1'];
            $lon = $punto[0]['ngps_longitud1'];
            $distancia = $this->funciones->distanciaReal($datos['ngps_latitud1'], $datos['ngps_longitud1'], $lat, $lon);
        }

        $this->mparaderos->guardaDistanciaParaderoAnterior($distancia, $id);

        echo $id;
    }

    function eliminarParadero() {
        $idParadero = $_POST['idParadero'];
        $this->mparaderos->eliminarParadero($idParadero);
    }

    function editarParadero() {
        $idRuta = $_POST['idRuta'];
        $arrayDatosRuta = $this->mparaderos->getDatosRuta($idRuta);
        $datos['nombreEmpresa'] = $arrayDatosRuta[0]['nombre'];
        $datos['nombreLinea'] = $arrayDatosRuta[0]['vlinea'];
        $datos['tipoRuta'] = $arrayDatosRuta[0]['vtipo_ruta'];

        $idParadero = $_POST['idParadero'];
        $arrayDatosParadero = $this->mparaderos->getDatosParadero($idParadero);

        $datos['nombreParadero'] = $arrayDatosParadero[0]['vnombre_paradero'];
        $datos['nroOrden'] = $arrayDatosParadero[0]['iorden'];
        $datos['longitud'] = $arrayDatosParadero[0]['ngps_longitud1'];
        $datos['latitud'] = $arrayDatosParadero[0]['ngps_latitud1'];
        $datos['tipo'] = 'editar';
        $datos['idRuta'] = $idRuta;
        $datos['idParadero'] = $idParadero;
        $idmtipoparadero = $arrayDatosParadero[0]['idmtipoparadero'];
        //
        $opcionCombo = $this->mparaderos->getTipoParadero();
        $opcionCombo = $this->funciones->convertirCombo($opcionCombo, 'idmtipoparadero', 'vnombreTipo');
        $js = 'class="text ui-widget-content ui-corner-all" id="tipoCombo"';
        $datos['comboTipo'] = form_dropdown('tipoParadero', $opcionCombo, $idmtipoparadero, $js);

        //
        $this->load->view("paraderos/mantenimientoParaderos", $datos);
    }

    function mapaParaderos() {
        $idRuta = $_POST['idRuta'];
        $datos['arrayParaderos'] = $this->mparaderos->getParaderos($idRuta);

        $this->load->view("paraderos/scriptMapa", $datos);
    }

    function vistaMarcaciones() {
        $datos = '';
        $arrayControles = $this->mcontroles->getMarcaciones();
        $opciones['ver'] = "verMapaMarcaciones";
        $tabla = $this->ltablas->botones($arrayControles, $opciones, 'idmmarcacion');

        $tmpl = array('table_open' => '<table  id="tablaMarcaciones" >');

        $this->table->set_template($tmpl);
        $this->table->set_heading('id', 'latitud', 'longitud', 'horaServidor', 'HoraCell', '');
        $datos['tablaControl'] = $this->table->generate($tabla);
        $this->load->view("controles/marcaciones", $datos);
    }

    function mapaMarcacion() {
        $idMarca = $_POST['idMarca'];
        $datos['arrayMarcaciones'] = $this->mcontroles->getMarcacionMapa($idMarca);
        $this->load->view("controles/scriptMapaMarcacion", $datos);
    }

    function menus() {

        $datos = array();
        //$this->load->view("vistaMenus", $datos);
    }

    function salidaRecorrido() {
        $opcionEmpresas = $this->mparaderos->getEmpresas();
        $opcionEmpresas = $this->funciones->convertirCombo($opcionEmpresas, 'idmempresa', 'empresa');
        $jsEmpresa = 'onChange="cargaLineas();" id="sEmpresaB"';
        $datos['comboEmpresa'] = form_dropdown('empresa', $opcionEmpresas, 0, $jsEmpresa);

        $opcionLineas = $this->funciones->convertirCombo(array(), '', '');
        $jsLineas = 'onChange="cargaRutas();" id="sLineaB"';
        $datos['comboLinea'] = form_dropdown('linea', $opcionLineas, 0, $jsLineas);

        $opcionRutas = $this->funciones->convertirCombo(array(), '', '');
        $jsRuta = 'onChange="cargaParaderos();" id="sRutaB"';
        $datos['comboRuta'] = form_dropdown('empresa', $opcionRutas, 0, $jsRuta);

        $this->load->view("procesos/reporteSalidas", $datos);
    }

    function nuevaSalida() {
        $opcionEmpresas = $this->mparaderos->getEmpresas();
        $opcionEmpresas = $this->funciones->convertirCombo($opcionEmpresas, 'idmempresa', 'empresa');
        $jsEmpresa = 'onChange="cargaLineasSalida();" id="sEmpresaSalida"';
        $datos['comboEmpresa'] = form_dropdown('empresa', $opcionEmpresas, 0, $jsEmpresa);

        $opcionLineas = $this->funciones->convertirCombo(array(), '', '');
        $jsLineas = 'onChange="cargaRutasSalida();" id="sLineaSalida"';
        $datos['comboLinea'] = form_dropdown('linea', $opcionLineas, 0, $jsLineas);

        $opcionRutas = $this->funciones->convertirCombo(array(), '', '');
        $jsRuta = 'onChange="cargaParaderosSalida();" id="sRutaSalida"';
        $datos['comboRuta'] = form_dropdown('idruta', $opcionRutas, 0, $jsRuta);

        $opcionParaderoInicial = $this->funciones->convertirCombo(array(), '', '');
        $jsParaderoInicial = 'id="sParaderoInicial"';
        $datos['comboParaderoInicial'] = form_dropdown('paraderoInicial', $opcionParaderoInicial, 0, $jsParaderoInicial);


        $opcionParaderoFinal = $this->funciones->convertirCombo(array(), '', '');
        $jsParaderoFinal = 'id="sParaderoFinal"';
        $datos['comboParaderoFinal'] = form_dropdown('paraderoFinal', $opcionParaderoFinal, 0, $jsParaderoFinal);

        //fechas
        $fecha = time();
        $datos['fecha'] = date("d/m/Y", $fecha);
        $datos['hora'] = str_pad(date("G", $fecha), 2, "0", STR_PAD_LEFT);
        ;
        $datos['minutos'] = date("i", $fecha);
        $datos['segundos'] = date("s", $fecha);
        //
        $this->load->view("procesos/mantenimientoSalidas", $datos);
    }

    function cargaLineasSalida() {
        $idEmpresa = $_POST['idEmpresa'];
        $opcionLineas = $this->mparaderos->getLineas($idEmpresa);
        echo "<option value='0' selected='selected'>seleccionar</option>";
        foreach ($opcionLineas as $fila) {
            $id = $fila['idmlinea'];
            $linea = $fila['vlinea'];
            echo "<option value='$id'>$linea</option>";
        }
    }

    function cargaRutasSalida() {
        $idLinea = $_POST['idLinea'];
        $opcionRutas = $this->mparaderos->getRutas($idLinea);
        echo "<option value='0' selected='selected'>seleccionar</option>";
        foreach ($opcionRutas as $fila) {
            $id = $fila['idmruta'];
            $linea = $fila['vtipo_ruta'];
            echo "<option value='$id'>$linea</option>";
        }
    }

    function cargaComboParaderoSalida() {
        $idRuta = $_POST['idRuta'];
        $orden = $_POST['orden'];

        $opcionParaderos = $this->mparaderos->getParaderos($idRuta);
        $n = count($opcionParaderos);
        $i = 0;
        $select = '';
        echo "<option value='0' >seleccionar</option>";
        if ($orden == 0) {
            $select = "selected='selected'";
            foreach ($opcionParaderos as $fila) {
                $id = $fila['iddparaderos'];
                $paradero = $fila['vnombre_paradero'];
                $iOrden = $fila['iorden'];
                echo "<option $select value='$id'>$iOrden - $paradero</option>";

                $select = '';
            }
        } else if ($orden == 1) {
            foreach ($opcionParaderos as $fila) {
                $i++;
                if ($n == $i) {
                    $select = "selected='selected'";
                } else {
                    $select = "";
                }
                $id = $fila['iddparaderos'];
                $paradero = $fila['vnombre_paradero'];
                $iOrden = $fila['iorden'];
                echo "<option $select value='$id'>$iOrden - $paradero</option>";
            }
        }
    }

    function buscarPlaca() {
        $idLinea = $_POST["idLinea"];
        ///////////////

        $arrayTranporte = $this->mtransporte->getTransporteLinea($idLinea);
        $llaves = array('iddtransporte_linea', 'vplaca', 'idmcelulares_predeterminado');
        $arrayTranporte = $this->ltablas->agregaLinks($arrayTranporte, 'vplaca', 'darIdTransportePlaca', $llaves);

        $cabecera = array('vplaca', 'vnumero');
        $arrayTabla = $this->ltablas->ordenarColumnas($arrayTranporte, $cabecera);
        $tmpl = array('table_open' => '<table  id="tablaTransportelinea" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('Nro de Placa', 'celular');

        ////////////////
        $datos['tabla'] = $this->table->generate($arrayTabla);
        $this->load->view("busquedas/buscarPlaca", $datos);
    }

    function buscarConductor() {
        $idEmpresa = $_POST["idEmpresa"];
        ///////////////

        $arrayConductor = $this->mpersonas->getArrayConductor($idEmpresa);
        $llaves = array('iddempleo_persona');
        $arrayConductor = $this->ltablas->agregaLinks($arrayConductor, 'vapellidopaterno', 'darIdConductor', $llaves);

//        $cabecera=array('vplaca','vnumero');
//        $arrayTabla=$this->ltablas->ordenarColumnas($arrayConductor,$cabecera);
        $tmpl = array('table_open' => '<table class="tablaEmergente" id="tablaConductor" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('Id', 'Ap.Paterno', 'Ap.Materno', 'nombres');

        ////////////////
        $datos['tabla'] = $this->table->generate($arrayConductor);
        $this->load->view("busquedas/buscarConductor", $datos);
    }

    function buscarAyudante() {
        $idEmpresa = $_POST["idEmpresa"];
        ///////////////

        $arrayAyudante = $this->mpersonas->getArrayAyudante($idEmpresa);
        $llaves = array('iddempleo_persona');
        $arrayAyudante = $this->ltablas->agregaLinks($arrayAyudante, 'vapellidopaterno', 'darIdAyudante', $llaves);

//        $cabecera=array('vplaca','vnumero');
//        $arrayTabla=$this->ltablas->ordenarColumnas($arrayConductor,$cabecera);
        $tmpl = array('table_open' => '<table class="tablaEmergente" id="tablaAyudante" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('Id', 'Ap.Paterno', 'Ap.Materno', 'nombres');

        ////////////////
        $datos['tabla'] = $this->table->generate($arrayAyudante);
        $this->load->view("busquedas/buscarAyudante", $datos);
    }

    function guardarSalida() {


        $fecha = $_POST['fechaSalida'];
        $hora = $_POST['horaSalida'];
        $minutos = $_POST['minutosSalida'];
        $segundos = $_POST['segundosSalida'];
        $arrayFecha = explode("/", $fecha);
        $horaFechaSalida = $arrayFecha[2] . "-" . $arrayFecha[1] . "-" . $arrayFecha[0] . " " . $hora . ":" . $minutos . ":" . $segundos;

        $datos['dhora_salida'] = $horaFechaSalida;
        $datos['dhora_llegada'] = '';
        $datos['iddtransporte_linea'] = $_POST['idTransporteLinea'];
        $datos['iddempleo_persona_chofer'] = $_POST['textIdConductor'];
        $datos['iddempleo_persona_cobrador'] = $_POST['textIdAyudante'];
        $datos['iddparaderos_inicial'] = $_POST['paraderoInicial'];
        $datos['iddparaderos_final'] = $_POST['paraderoFinal'];
        $datos['idmcelulares'] = $_POST['idCelular'];
        $datos['idmruta'] = $_POST['idruta'];
        $datos['iestado'] = 1;
        $datos['idusuario'] = 1;
        $datos['vhost'] = $_SERVER['REMOTE_ADDR'];

        $valido = true;
        $mensaje = '';
        $arraySalidas = $this->msalidas->transporteDisponible($datos['iddtransporte_linea']);

        if (count($arraySalidas) == 0) {
            $valido = true;
        } else {
            $valido = false;
        }
        if ($valido) {

            $idSalida = $this->msalidas->insertarSalidas($datos);
            echo $idSalida;
        } else {

            $opciones['eliminar'] = "eliminarSalida";
            $opciones['editar'] = "editarSalida";
            $opciones['ver'] = "verSalida";
            $tabla = $this->ltablas->botones($arraySalidas, $opciones, 'idmProgramacionSalidas');

            $tmpl = array('table_open' => '<table class="tablaEmergente"  id="salidasRepetidas" >');
            $this->table->set_template($tmpl);
            $this->table->set_heading('id', 'Salida', 'llegada', 'Conductor', 'Ayudante', 'celular', 'placa', 'inicio', 'fin', 'E', '', '', '');

            ////////////////
            $datos['tabla'] = $this->table->generate($tabla);
            $this->load->view("procesos/salidasRepetidas", $datos);
        }
    }

    function buscarSalidas() {

        ///////////////

        $arraySalidas = $this->msalidas->getSalidas();
//        $llaves=array('iddtransporte_linea','vplaca','idmcelulares_predeterminado');
//        $arraySalidas=$this->ltablas->agregaLinks($arraySalidas,'vplaca','darIdTransportePlaca',$llaves);

        $dataTablas['arrayTabla'] = $arraySalidas;
        $arrayEncabezado['idmProgramacionSalidas'] = 'id';
        $arrayEncabezado['dhora_salida'] = 'Salida';
        $arrayEncabezado['dhora_llegada'] = 'Llegada';
        $arrayEncabezado['vnumero'] = 'Celular';
        $arrayEncabezado['vplaca'] = 'Placa';
        $arrayEncabezado['inicio'] = 'P. Inicial';
        $arrayEncabezado['final'] = 'P. Final';
        $arrayEncabezado['conductor'] = 'Conductor';
        $arrayEncabezado['ayudante'] = 'Ayudante';


        $dataTablas['arrayEncabezado'] = $arrayEncabezado;
        $dataTablas['id'] = 'tablaReporteSalidas';
        $dataTablas['class'] = 'tablas';
        $dataTablas['columnaEstado'] = 'iestado';
        $arrayEstados[0] = 'estado0';
        $arrayEstados[1] = 'estado2';
        $dataTablas['arrayEstados'] = $arrayEstados;
        $arrayBotones[0]['columnaId'] = 'idmProgramacionSalidas';
        $arrayBotones[0]['columnaEstado'] = 'iestado';
        $arrayBotones[0]['esconestados'] = false;
        $arrayBotones[0]['orden'] = 0;
        $arrayBotones[0]['nombre'] = "";
        $arrayFunciones[0]['estado'] = 0;
        $arrayFunciones[0]['icono'] = 'b_ver_on.gif';
        $arrayFunciones[0]['funcion'] = 'verSalida';
        $arrayFunciones[0]['evento'] = 'onclick';
        $arrayFunciones[0]['alt'] = 'ver';
        $arrayBotones[0]['arrayFunciones'] = $arrayFunciones;

        $arrayBotones[1]['columnaId'] = 'idmProgramacionSalidas';
        $arrayBotones[1]['columnaEstado'] = 'iestado';
        $arrayBotones[1]['esconestados'] = true;
        $arrayBotones[1]['orden'] = 1;
        $arrayBotones[1]['nombre'] = "";
        $arrayFunciones = array();
        $arrayFunciones[0]['estado'] = 0;
        $arrayFunciones[0]['icono'] = 'editdelete_inactivo.png';
        $arrayFunciones[0]['funcion'] = '';
        $arrayFunciones[0]['evento'] = 'onclick';
        $arrayFunciones[0]['alt'] = 'ver';
        $arrayFunciones[1]['estado'] = 1;
        $arrayFunciones[1]['icono'] = 'editdelete.png';
        $arrayFunciones[1]['funcion'] = 'eliminarSalida';
        $arrayFunciones[1]['evento'] = 'onclick';
        $arrayFunciones[1]['alt'] = 'cancel';
        $arrayBotones[1]['arrayFunciones'] = $arrayFunciones;


        $dataTablas['arrayBotones'] = $arrayBotones;

        $tabla = $this->ltablas->obtenerTabla($dataTablas);
        ////////////////
        $datos['tabla'] = $tabla;
        $this->load->view("procesos/tablaSalidas", $datos);
    }

    function datosSalidaEliminar() {

        $id = $_POST['id'];
        $arraySalidas = $this->msalidas->getDatosSalida($id);
        $datos = $arraySalidas[0];
        $this->load->view("procesos/eliminarSalida", $datos);
    }

    function cancelarSalidas() {
        $id = $_POST['id'];
        $respuesta = $this->msalidas->cancelarSalida($id);
        echo $respuesta;
    }

    function cargarMapaSalidas() {
        $id = $_POST['id'];
        $arrayControles = $this->mcontroles->getControlesSalida($id);
        $arrayMaraciones = $this->mcontroles->getMarcacionesxSalida($id);
        $datos["arrayControles"] = $arrayControles;
        $datos["arrayMaraciones"] = $arrayMaraciones;
        $this->load->view("controles/scripMarcacionSalidas", $datos);
    }

    function contenedorVerSalida() {
        $datos = '';
        $id = $_POST['id'];
        $arraySalidas = $this->msalidas->getDatosSalida($id);
        $datos = $arraySalidas[0];
        $opciones = array();
        $arrayControles = $this->mcontroles->getControlesSalida($id);
        foreach ($arrayControles as $key => $value) {
            $arrayControles[$key]['time'] = $arrayControles[$key]['dHoraControl'];
            $arrayControles[$key]['dHoraControl'] = date("H:i:s ", $arrayControles[$key]['dHoraControl']);
            $arryAnteriores = $this->mcontroles->obtenerSiguientes($arrayControles[$key]['time'], $value['idmmarcacion_control']);
            $numero = count($arryAnteriores);
            if ($numero == 0) {
                $arrayControles[$key]['diferencia1'] = '';
                $arrayControles[$key]['diferencia2'] = '';
                $arrayControles[$key]['diferencia3'] = '';
            } else if ($numero == 1) {
                $arrayControles[$key]['diferencia1'] = $this->funciones->formatoHora($arryAnteriores[0]['diferencia']);
                $arrayControles[$key]['diferencia2'] = "";
                $arrayControles[$key]['diferencia3'] = "";
            } else if ($numero == 2) {
                $arrayControles[$key]['diferencia1'] = $this->funciones->formatoHora($arryAnteriores[0]['diferencia']);
                $arrayControles[$key]['diferencia2'] = $this->funciones->formatoHora($arryAnteriores[1]['diferencia']);
                $arrayControles[$key]['diferencia3'] = "";
            } else {
                $arrayControles[$key]['diferencia1'] = $this->funciones->formatoHora($arryAnteriores[0]['diferencia']);
                $arrayControles[$key]['diferencia2'] = $this->funciones->formatoHora($arryAnteriores[1]['diferencia']);
                $arrayControles[$key]['diferencia3'] = $this->funciones->formatoHora($arryAnteriores[2]['diferencia']);
            }
        }
        $dataTablas['arrayTabla'] = $arrayControles;
        $arrayEncabezado['iorden'] = 'Orden';
        $arrayEncabezado['idmmarcacion_control'] = 'Id';
        $arrayEncabezado['vnombre_paradero'] = 'Paradero';
        $arrayEncabezado['dHoraControl'] = 'Hora';
        $arrayEncabezado['diferencia1'] = 'Diferencia 1';
        $arrayEncabezado['diferencia2'] = 'Diferencia 2';
        $arrayEncabezado['diferencia3'] = 'Diferencia 3';
        $dataTablas['arrayEncabezado'] = $arrayEncabezado;
        $dataTablas['id'] = 'tablaReporteControles';
        $dataTablas['class'] = 'tablas';
        $dataTablas['columnaEstado'] = 'idmtipoparadero';
        $arrayEstados[1] = 'estado0';
        $arrayEstados[2] = 'estado1';
        $dataTablas['arrayEstados'] = $arrayEstados;
        $arrayBotones[0]['columnaId'] = 'iddparaderos';
        $arrayBotones[0]['columnaEstado'] = 'iestado';
        $arrayBotones[0]['esconestados'] = false;
        $arrayBotones[0]['orden'] = 0;
        $arrayBotones[0]['nombre'] = "";
        $arrayFunciones[0]['estado'] = 0;
        $arrayFunciones[0]['icono'] = 'b_ver_on.gif';
        $arrayFunciones[0]['funcion'] = 'verSalida';
        $arrayFunciones[0]['evento'] = 'onclick';
        $arrayFunciones[0]['alt'] = 'ver';
        $arrayBotones[0]['arrayFunciones'] = $arrayFunciones;

//        $arrayBotones[1]['columnaId']='idmProgramacionSalidas';
//        $arrayBotones[1]['columnaEstado']='iestado';
//        $arrayBotones[1]['esconestados']=true;
//        $arrayBotones[1]['orden']=1;
//        $arrayBotones[1]['nombre']="";
//        $arrayFunciones=array();
//        $arrayFunciones[0]['estado']=0;
//        $arrayFunciones[0]['icono']='editdelete_inactivo.png';
//        $arrayFunciones[0]['funcion']='';
//        $arrayFunciones[0]['evento']='onclick';
//        $arrayFunciones[0]['alt']='ver';
//        $arrayFunciones[1]['estado']=1;
//        $arrayFunciones[1]['icono']='editdelete.png';
//        $arrayFunciones[1]['funcion']='eliminarSalida';
//        $arrayFunciones[1]['evento']='onclick';
//        $arrayFunciones[1]['alt']='cancel';
//        $arrayBotones[1]['arrayFunciones']=$arrayFunciones;


        $dataTablas['arrayBotones'] = $arrayBotones;

        $tabla = $this->ltablas->obtenerTabla($dataTablas);


//        foreach ($arrayControles as $key => $value) {
//            $arrayControles[$key]['time']=$arrayControles[$key]['dHoraControl'];
//            $arrayControles[$key]['dHoraControl'] = date("H:i:s ", $arrayControles[$key]['dHoraControl']);
//            
//        }
//        $llaves=array('iddtransporte_linea','vplaca','idmcelulares_predeterminado');
//        $arraySalidas=$this->ltablas->agregaLinks($arraySalidas,'vplaca','darIdTransportePlaca',$llaves);
        //$tabla = $this->ltablas->botones($arraySalidas, $opciones, 'idmProgramacionSalidas');
//        $cabecera = array('idmmarcacion_control','iorden', 'vnombre_paradero', 'dHoraControl','time','iTipoMarcacion');
//        $arrayTabla = $this->ltablas->ordenarColumnas($arrayControles, $cabecera);
//        $tmpl = array('table_open' => '<table class="tablas"  id="tablaReporteControles" >');
//        $this->table->set_template($tmpl);
//        $this->table->set_heading('id','orden', 'Paradero', 'llegada','time','Tipo');
        ////////////////
        $datos['tabla'] = $tabla;

        $this->load->view("controles/marcacionesSalida", $datos);
    }

    function mantenimientoCelulares() {
        $this->load->model('mcelulares');
        $datos = '';
        $arrayCelulares = $this->mcelulares->getCelulares();
        $opciones['eliminar'] = "eliminarCelular";
        $opciones['editar'] = "editarCelular";
        $tabla = $this->ltablas->botones($arrayCelulares, $opciones, 'idmcelulares');
        $tmpl = array('table_open' => '<table class="tablas" id="tablaCelulares" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('id', 'N°', 'Operador', 'Estado', '', '');
        $datos['tablaCelulares'] = $this->table->generate($tabla);

        $opcionOperadoras = $this->mcelulares->getOperadores();
        $opcionOperadoras = $this->funciones->convertirCombo($opcionOperadoras, 'idmoperadorcelular', 'vnombre');
        $jsOperador = 'id="cboOperador"';
        $datos['comboOperador'] = form_dropdown('idmoperadorcelular', $opcionOperadoras, 0, $jsOperador);

        $datos['iestado'] = "1";

        // $this->load->view("celulares/tablaCelulares", $datos);
        $this->load->view("celulares/mantenimientoCelulares", $datos);
    }

    function guardarCelulares() {
        $this->load->model('mcelulares');
        //print_r($_POST);
        $idmcelulares = $_POST['idCelular'];
        $datos['vnumero'] = $_POST['vnumero'];
        $datos['idmoperadorcelular'] = $_POST['idmoperadorcelular'];
        $datos["iestado"] = $_POST['iestado'];
        $datos['idusuario'] = 1;
        $datos['vhost'] = $_SERVER['REMOTE_ADDR'];
        $datos['nbusquedaGPS'] = $_POST['nbusquedaGPS'];
        $datos['ndistanciaGPS'] = $_POST['ndistanciaGPS'];



        if ($idmcelulares == "") {//nuevo
            $id = $this->mcelulares->nuevocelular($datos);
        } else { //actualizar
            $datos['idmcelulares'] = $idmcelulares;
            $id = $this->mcelulares->editarCelular($datos);
        }
        echo $id;
    }

    function editarCelular() {
        $id = $_POST['id'];
        $this->load->model('mcelulares');
        $datos['id'] = $id;
        $arrayDatosCelulares = $this->mcelulares->getDatosCelulares($id);
        $opcionOperadoras = $this->mcelulares->getOperadores();
        $opcionOperadoras = $this->funciones->convertirCombo($opcionOperadoras, 'idmoperadorcelular', 'vnombre');
        $jsOperador = 'id="cboOperador"';
        $idOperadora = $arrayDatosCelulares[0]['idmoperadorcelular'];
        $datos['comboOperador'] = form_dropdown('idmoperadorcelular', $opcionOperadoras, $idOperadora, $jsOperador);

        $datos['iestado'] = $arrayDatosCelulares[0]['iestado'];
        $datos['vnumero'] = $arrayDatosCelulares[0]['vnumero'];
        $datos['nbusquedaGPS'] = $arrayDatosCelulares[0]['nbusquedaGPS'];
        $datos['ndistanciaGPS'] = $arrayDatosCelulares[0]['ndistanciaGPS'];
        $this->load->view("celulares/formularioCelulares", $datos);
    }

    public function mantenimientoPersonas() {
        $this->load->model('mpersonas');
        $datos = '';
        $arrayPersonas = $this->mpersonas->getPersonas();

        $opciones['editar'] = "editarPersona";
        $tabla = $this->ltablas->botones($arrayPersonas, $opciones, 'idmpersonas');
        $tmpl = array('table_open' => '<table class="tablas" id="tablaPersonas" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('id', 'Nombres', 'Estado', '');
        $datos['tablaPersonas'] = $this->table->generate($tabla);
        $this->load->view("personas/mantenimientoPersonas", $datos);
    }

    public function guardarPersonas() {
        $this->load->model('mpersonas');
        //print_r($_POST);
        $idmpersonas = $_POST['idmpersonas'];
        $datos['vapellidopaterno'] = $_POST['vapellidopaterno'];
        $datos['vapellidomaterno'] = $_POST['vapellidomaterno'];
        $datos['vnombres'] = $_POST['vnombres'];
        $datos['vdireccion'] = $_POST['vdireccion'];
        $datos["iestado"] = $_POST['iestado'];
        $datos['idusuario'] = 1;
        $datos['vhost'] = $_SERVER['REMOTE_ADDR'];

        if ($idmpersonas == "") {//nuevo
            $id = $this->mpersonas->nuevaPersona($datos);
        } else {
            $datos['idmpersonas'] = $idmpersonas;
            $id = $this->mpersonas->editarPersona($datos);
        }
        echo $id;
    }

    function editarPersona() {
        $id = $_POST['id'];
        $this->load->model('mpersonas');

        $arrayDatosPersonas = $this->mpersonas->getDatosPesona($id);

        $datos = $arrayDatosPersonas[0];

        $this->load->view("personas/formularioPersonas", $datos);
    }

    function mantenimientoTransporte() {
        $this->load->model('mpersonas');
        $datos = '';
        $arrayCelulares = $this->mpersonas->getPersonas();

        $opciones['editar'] = "editarPersona";
        $tabla = $this->ltablas->botones($arrayCelulares, $opciones, 'idmpersonas');
        $tmpl = array('table_open' => '<table class="tablas" id="tablaPersonas" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('id', 'Nombres', 'Estado', '');
        $datos['tablaPersonas'] = $this->table->generate($tabla);
        $this->load->view("personas/mantenimientoPersonas", $datos);
    }

    function puntosPaso() {
        $this->load->model('mcelulares');
        $datos = '';
        $arrayCelulares = $this->mcelulares->getCelularesTransporte();
        $opciones['ver'] = "darNumeroCelular";
        $tabla = $this->ltablas->botones($arrayCelulares, $opciones, 'vnumero');
        $tmpl = array('table_open' => '<table class="tablas" id="tablaCelularesPlaca" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('id', 'Número', 'Placa', '');
        $datos['tablaCelularesPlaca'] = $this->table->generate($tabla);
        $tiempo = time();

        $fecha = time();
        $datos['fecha1'] = date("d/m/Y", $fecha);
        $datos['hora1'] = '00';
        ;
        $datos['minutos1'] = '00';
        $datos['segundos1'] = '00';

        $fecha2 = $fecha;
        $datos['fecha2'] = date("d/m/Y", $fecha);
        $datos['hora2'] = str_pad(date("G", $fecha), 2, "0", STR_PAD_LEFT);
        ;
        $datos['minutos2'] = date("i", $fecha);
        $datos['segundos2'] = date("s", $fecha);

        $opcion = array(2 => 'Ambos', 0 => 'Invalidos', 1 => 'Validos');
        $js = 'id="tipo"';
        $datos['comboTipo'] = form_dropdown('tipo', $opcion, 2, $js);

        $this->load->view("controles/puntoPaso", $datos);
    }

    function buscarPuntos() {
        //$this->load->model('mcelulares');
        $datos['vnumero'] = $_POST['vnumero'];
        $fecha1 = $_POST['fecha1'];
        $hora1 = $_POST['hora1'];
        $minutos1 = $_POST['minutos1'];
        $segundos1 = $_POST['segundos1'];
        $arrayFecha1 = explode("/", $fecha1);
        $horaFecha1 = $arrayFecha1[2] . "-" . $arrayFecha1[1] . "-" . $arrayFecha1[0] . " " . $hora1 . ":" . $minutos1 . ":" . $segundos1;
        $fecha2 = $_POST['fecha2'];
        $hora2 = $_POST['hora2'];
        $minutos2 = $_POST['minutos2'];
        $segundos2 = $_POST['segundos2'];
        $arrayFecha2 = explode("/", $fecha2);
        $horaFecha2 = $arrayFecha2[2] . "-" . $arrayFecha2[1] . "-" . $arrayFecha2[0] . " " . $hora2 . ":" . $minutos2 . ":" . $segundos2;
        $datos['fechaHora1'] = $horaFecha1;
        $datos['fechaHora2'] = $horaFecha2;
        $datos['tipo'] = $_POST['tipo'];
        $arrayPuntos = $this->mcontroles->getMarcacionesCelular($datos);
        $opciones['ver'] = "resaltarPunto";
        $tabla = $this->ltablas->botones($arrayPuntos, $opciones, 'idmmarcacionOriginal');


        $tmpl = array('table_open' => '<table class="tablas" id="tablaPuntosPaso" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('Nro', 'id', 'Latitud', 'Longitud', 'Hora','ntiempo', '');
        $tablaPuntos = $this->table->generate($tabla);
        //$this->load->view("controles/puntoPaso", $datos);
        echo $tablaPuntos;
    }

    function cargarMapaPuntosPaso() {
        $datos['vnumero'] = $_POST['vnumero'];
        $datos['arrayParaderos'] = $this->mparaderos->getParaderosCelular($datos['vnumero']);

        $fecha1 = $_POST['fecha1'];
        $hora1 = $_POST['hora1'];
        $minutos1 = $_POST['minutos1'];
        $segundos1 = $_POST['segundos1'];
        $arrayFecha1 = explode("/", $fecha1);
        $horaFecha1 = $arrayFecha1[2] . "-" . $arrayFecha1[1] . "-" . $arrayFecha1[0] . " " . $hora1 . ":" . $minutos1 . ":" . $segundos1;
        $fecha2 = $_POST['fecha2'];
        $hora2 = $_POST['hora2'];
        $minutos2 = $_POST['minutos2'];
        $segundos2 = $_POST['segundos2'];
        $arrayFecha2 = explode("/", $fecha2);
        $horaFecha2 = $arrayFecha2[2] . "-" . $arrayFecha2[1] . "-" . $arrayFecha2[0] . " " . $hora2 . ":" . $minutos2 . ":" . $segundos2;
        $datos['fechaHora1'] = $horaFecha1;
        $datos['fechaHora2'] = $horaFecha2;
        $datos['tipo'] = $_POST['tipo'];
        $arrayPuntos = $this->mcontroles->getMarcacionesCelularRespuesta($datos);

        $datos["arrayPuntos"] = $arrayPuntos;
        $this->load->view("controles/scripPuntosPaso", $datos);
    }

    function simulacionPuntos() {
        $this->load->model('mpruebas');
        $opcionPruebas = $this->mpruebas->getPruebas();
        $opcionPruebas = $this->funciones->convertirCombo($opcionPruebas, 'idmpruebas', 'Observacion');
        $jsPruebas = 'onChange="cargaTablaPruebas();" id="idmpruebas"';
        $datos['comboPrueba'] = form_dropdown('idmpruebas', $opcionPruebas, 0, $jsPruebas);
        $this->load->view("simulacion/principal", $datos);
    }

    function tablaSimulacion() {
        $this->load->model('mpruebas');
        $idmpruebas = $_POST['idmpruebas'];
        $arrayTablaPrueba = $this->mpruebas->getTablaPruebas($idmpruebas);
        $opciones['ver'] = "simularPunto";
        $tabla = $this->ltablas->botones($arrayTablaPrueba, $opciones, 'iddpruebas');


        $tmpl = array('table_open' => '<table class="tablas" id="tablaPruebas" >');
        $this->table->set_template($tmpl);
        $this->table->set_heading('id', 'numero', 'Latitud', 'Longitud', 'E', 'V', '');
        $tablaPuntos = $this->table->generate($tabla);
        //$this->load->view("controles/puntoPaso", $datos);
        echo $tablaPuntos;
    }

    function linkPrueba() {
        $this->load->model('mpruebas');
        $iddprueba = $_POST['id'];
        $arrayPrueba = $this->mpruebas->getDetallePruebas($iddprueba);
        $iestado = $arrayPrueba[0]['iestado'];
        $latitud = $arrayPrueba[0]['latitud'];
        $longitud = $arrayPrueba[0]['longitud'];
        $numero = $arrayPrueba[0]['numero'];
        $it1 = $arrayPrueba[0]['it1'];
        $it2 = $arrayPrueba[0]['it2'];
        $it3 = $arrayPrueba[0]['it3'];
        $it4 = $arrayPrueba[0]['it4'];
        $it5 = $arrayPrueba[0]['it5'];
        $it6 = $arrayPrueba[0]['it6'];
        $ivalido = $arrayPrueba[0]['ivalido'];
        $vinformacionExtra = $arrayPrueba[0]['vinformacionExtra'];
        $ntiempo=$arrayPrueba[0]['ntiempo'];
        
        if($ntiempo==0){
            $ntiempo=microtime(true);
        }
        $url = '';

        if ($iestado == 1) {
            $url.="../publico/marcacionCelular/";
            $url.="?latitud=$latitud";
            $url.="&longitud=$longitud";
            $url.="&horaCelular=A:$it1:B:$it2:C:$it3:D:$it4:E:$it5:F:$it6:";
            $url.="&cell=$numero";
            $url.="&isvalido=$ivalido";
            $url.="&horaActual=$ntiempo";
            $url.="&info=$vinformacionExtra";
            
            $arrayPrueba = $this->mpruebas->cambioEstado($iddprueba);
        }
        echo $url;
    }

    function getPantallaCelular() {
        $id = $_POST['id'];
        $respuesta = $this->mcontroles->getRespuestaCelular($id);
        echo $respuesta;
    }

}